\section{ec\+\_\+master Struct Reference}
\label{structec__master}\index{ec\+\_\+master@{ec\+\_\+master}}


Ether\+C\+AT master.  


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
unsigned int \textbf{ index}
\begin{DoxyCompactList}\small\item\em Index. \end{DoxyCompactList}\item 
unsigned int \textbf{ reserved}
\begin{DoxyCompactList}\small\item\em {\itshape True}, if the master is in use. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+cdev\+\_\+t} \textbf{ cdev}
\begin{DoxyCompactList}\small\item\em Master character device. \end{DoxyCompactList}\item 
struct device $\ast$ \textbf{ class\+\_\+device}
\begin{DoxyCompactList}\small\item\em Master class device. \end{DoxyCompactList}\item 
struct semaphore \textbf{ master\+\_\+sem}
\begin{DoxyCompactList}\small\item\em Master semaphore. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+device\+\_\+t} \textbf{ devices} [E\+C\+\_\+\+M\+A\+X\+\_\+\+N\+U\+M\+\_\+\+D\+E\+V\+I\+C\+ES]
\begin{DoxyCompactList}\small\item\em Ether\+C\+AT devices. \end{DoxyCompactList}\item 
const uint8\+\_\+t $\ast$ \textbf{ macs} [E\+C\+\_\+\+M\+A\+X\+\_\+\+N\+U\+M\+\_\+\+D\+E\+V\+I\+C\+ES]
\begin{DoxyCompactList}\small\item\em Device M\+AC addresses. \end{DoxyCompactList}\item 
struct semaphore \textbf{ device\+\_\+sem}
\begin{DoxyCompactList}\small\item\em Device semaphore. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+device\+\_\+stats\+\_\+t} \textbf{ device\+\_\+stats}
\begin{DoxyCompactList}\small\item\em Device statistics. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+fsm\+\_\+master\+\_\+t} \textbf{ fsm}
\begin{DoxyCompactList}\small\item\em Master state machine. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+datagram\+\_\+t} \textbf{ fsm\+\_\+datagram}
\begin{DoxyCompactList}\small\item\em Datagram used for state machines. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+master\+\_\+phase\+\_\+t} \textbf{ phase}
\begin{DoxyCompactList}\small\item\em Master phase. \end{DoxyCompactList}\item 
unsigned int \textbf{ active}
\begin{DoxyCompactList}\small\item\em Master has been activated. \end{DoxyCompactList}\item 
unsigned int \textbf{ config\+\_\+changed}
\begin{DoxyCompactList}\small\item\em The configuration changed. \end{DoxyCompactList}\item 
unsigned int \textbf{ injection\+\_\+seq\+\_\+fsm}
\begin{DoxyCompactList}\small\item\em Datagram injection sequence number for the F\+SM side. \end{DoxyCompactList}\item 
unsigned int \textbf{ injection\+\_\+seq\+\_\+rt}
\begin{DoxyCompactList}\small\item\em Datagram injection sequence number for the realtime side. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+slave\+\_\+t} $\ast$ \textbf{ slaves}
\begin{DoxyCompactList}\small\item\em Array of slaves on the bus. \end{DoxyCompactList}\item 
unsigned int \textbf{ slave\+\_\+count}
\begin{DoxyCompactList}\small\item\em Number of slaves on the bus. \end{DoxyCompactList}\item 
struct list\+\_\+head \textbf{ configs}
\begin{DoxyCompactList}\small\item\em List of slave configurations. \end{DoxyCompactList}\item 
struct list\+\_\+head \textbf{ domains}
\begin{DoxyCompactList}\small\item\em List of domains. \end{DoxyCompactList}\item 
u64 \textbf{ app\+\_\+time}
\begin{DoxyCompactList}\small\item\em Time of the last ecrt\+\_\+master\+\_\+sync() call. \end{DoxyCompactList}\item 
u64 \textbf{ app\+\_\+start\+\_\+time}
\begin{DoxyCompactList}\small\item\em Application start time. \end{DoxyCompactList}\item 
u8 \textbf{ has\+\_\+app\+\_\+time}
\begin{DoxyCompactList}\small\item\em Application time is valid. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+datagram\+\_\+t} \textbf{ ref\+\_\+sync\+\_\+datagram}
\begin{DoxyCompactList}\small\item\em Datagram used for synchronizing the reference clock to the master clock. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+datagram\+\_\+t} \textbf{ sync\+\_\+datagram}
\begin{DoxyCompactList}\small\item\em Datagram used for DC drift compensation. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+datagram\+\_\+t} \textbf{ sync\+\_\+mon\+\_\+datagram}
\begin{DoxyCompactList}\small\item\em Datagram used for DC synchronisation monitoring. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+slave\+\_\+config\+\_\+t} $\ast$ \textbf{ dc\+\_\+ref\+\_\+config}
\begin{DoxyCompactList}\small\item\em Application-\/selected DC reference clock slave config. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+slave\+\_\+t} $\ast$ \textbf{ dc\+\_\+ref\+\_\+clock}
\begin{DoxyCompactList}\small\item\em DC reference clock slave. \end{DoxyCompactList}\item 
unsigned int \textbf{ scan\+\_\+busy}
\begin{DoxyCompactList}\small\item\em Current scan state. \end{DoxyCompactList}\item 
unsigned int \textbf{ allow\+\_\+scan}
\begin{DoxyCompactList}\small\item\em {\itshape True}, if slave scanning is allowed. \end{DoxyCompactList}\item 
struct semaphore \textbf{ scan\+\_\+sem}
\begin{DoxyCompactList}\small\item\em Semaphore protecting the {\itshape scan\+\_\+busy} variable and the {\itshape allow\+\_\+scan} flag. \end{DoxyCompactList}\item 
wait\+\_\+queue\+\_\+head\+\_\+t \textbf{ scan\+\_\+queue}
\begin{DoxyCompactList}\small\item\em Queue for processes that wait for slave scanning. \end{DoxyCompactList}\item 
unsigned int \textbf{ config\+\_\+busy}
\begin{DoxyCompactList}\small\item\em State of slave configuration. \end{DoxyCompactList}\item 
struct semaphore \textbf{ config\+\_\+sem}
\begin{DoxyCompactList}\small\item\em Semaphore protecting the {\itshape config\+\_\+busy} variable and the allow\+\_\+config flag. \end{DoxyCompactList}\item 
wait\+\_\+queue\+\_\+head\+\_\+t \textbf{ config\+\_\+queue}
\begin{DoxyCompactList}\small\item\em Queue for processes that wait for slave configuration. \end{DoxyCompactList}\item 
struct list\+\_\+head \textbf{ datagram\+\_\+queue}
\begin{DoxyCompactList}\small\item\em Datagram queue. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ datagram\+\_\+index}
\begin{DoxyCompactList}\small\item\em Current datagram index. \end{DoxyCompactList}\item 
struct list\+\_\+head \textbf{ ext\+\_\+datagram\+\_\+queue}
\begin{DoxyCompactList}\small\item\em Queue for non-\/application datagrams. \end{DoxyCompactList}\item 
struct semaphore \textbf{ ext\+\_\+queue\+\_\+sem}
\begin{DoxyCompactList}\small\item\em Semaphore protecting the {\itshape ext\+\_\+datagram\+\_\+queue}. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+datagram\+\_\+t} \textbf{ ext\+\_\+datagram\+\_\+ring} [\textbf{ E\+C\+\_\+\+E\+X\+T\+\_\+\+R\+I\+N\+G\+\_\+\+S\+I\+ZE}]
\begin{DoxyCompactList}\small\item\em External datagram ring. \end{DoxyCompactList}\item 
unsigned int \textbf{ ext\+\_\+ring\+\_\+idx\+\_\+rt}
\begin{DoxyCompactList}\small\item\em Index in external datagram ring for RT side. \end{DoxyCompactList}\item 
unsigned int \textbf{ ext\+\_\+ring\+\_\+idx\+\_\+fsm}
\begin{DoxyCompactList}\small\item\em Index in external datagram ring for F\+SM side. \end{DoxyCompactList}\item 
unsigned int \textbf{ send\+\_\+interval}
\begin{DoxyCompactList}\small\item\em Interval between two calls to \doxyref{ecrt\+\_\+master\+\_\+send()}{p.}{group__ApplicationInterface_ga453f787866ee66afb98130cf4723762d}. \end{DoxyCompactList}\item 
\mbox{\label{structec__master_a39b81f27a225b9b10daf88b1746d0d6d}} 
size\+\_\+t \textbf{ max\+\_\+queue\+\_\+size}
\begin{DoxyCompactList}\small\item\em Maximum size of datagram queue. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+slave\+\_\+t} $\ast$ \textbf{ fsm\+\_\+slave}
\begin{DoxyCompactList}\small\item\em Slave that is queried next for F\+SM exec. \end{DoxyCompactList}\item 
struct list\+\_\+head \textbf{ fsm\+\_\+exec\+\_\+list}
\begin{DoxyCompactList}\small\item\em Slave F\+SM execution list. \end{DoxyCompactList}\item 
unsigned int \textbf{ fsm\+\_\+exec\+\_\+count}
\begin{DoxyCompactList}\small\item\em Number of entries in execution list. \end{DoxyCompactList}\item 
unsigned int \textbf{ debug\+\_\+level}
\begin{DoxyCompactList}\small\item\em Master debug level. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+stats\+\_\+t} \textbf{ stats}
\begin{DoxyCompactList}\small\item\em Cyclic statistics. \end{DoxyCompactList}\item 
struct task\+\_\+struct $\ast$ \textbf{ thread}
\begin{DoxyCompactList}\small\item\em Master thread. \end{DoxyCompactList}\item 
struct task\+\_\+struct $\ast$ \textbf{ eoe\+\_\+thread}
\begin{DoxyCompactList}\small\item\em EoE thread. \end{DoxyCompactList}\item 
struct list\+\_\+head \textbf{ eoe\+\_\+handlers}
\begin{DoxyCompactList}\small\item\em Ethernet over Ether\+C\+AT handlers. \end{DoxyCompactList}\item 
struct semaphore \textbf{ io\+\_\+sem}
\begin{DoxyCompactList}\small\item\em Semaphore used in {\itshape I\+D\+LE} phase. \end{DoxyCompactList}\item 
void($\ast$ \textbf{ send\+\_\+cb} )(void $\ast$)
\begin{DoxyCompactList}\small\item\em Current send datagrams callback. \end{DoxyCompactList}\item 
void($\ast$ \textbf{ receive\+\_\+cb} )(void $\ast$)
\begin{DoxyCompactList}\small\item\em Current receive datagrams callback. \end{DoxyCompactList}\item 
void $\ast$ \textbf{ cb\+\_\+data}
\begin{DoxyCompactList}\small\item\em Current callback data. \end{DoxyCompactList}\item 
void($\ast$ \textbf{ app\+\_\+send\+\_\+cb} )(void $\ast$)
\begin{DoxyCompactList}\small\item\em Application\textquotesingle{}s send datagrams callback. \end{DoxyCompactList}\item 
void($\ast$ \textbf{ app\+\_\+receive\+\_\+cb} )(void $\ast$)
\begin{DoxyCompactList}\small\item\em Application\textquotesingle{}s receive datagrams callback. \end{DoxyCompactList}\item 
void $\ast$ \textbf{ app\+\_\+cb\+\_\+data}
\begin{DoxyCompactList}\small\item\em Application callback data. \end{DoxyCompactList}\item 
struct list\+\_\+head \textbf{ sii\+\_\+requests}
\begin{DoxyCompactList}\small\item\em S\+II write requests. \end{DoxyCompactList}\item 
wait\+\_\+queue\+\_\+head\+\_\+t \textbf{ request\+\_\+queue}
\begin{DoxyCompactList}\small\item\em Wait queue for external requests from user space. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Ether\+C\+AT master. 

Manages slaves, domains and IO. 

Definition at line 194 of file master.\+h.



\subsection{Field Documentation}
\mbox{\label{structec__master_a78fe13519ced082c9a212711bec49ed3}} 
\index{ec\+\_\+master@{ec\+\_\+master}!index@{index}}
\index{index@{index}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{index}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::index}



Index. 



Definition at line 195 of file master.\+h.

\mbox{\label{structec__master_ace80d85886a06d3608f853a7b37fb8c9}} 
\index{ec\+\_\+master@{ec\+\_\+master}!reserved@{reserved}}
\index{reserved@{reserved}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{reserved}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::reserved}



{\itshape True}, if the master is in use. 



Definition at line 196 of file master.\+h.

\mbox{\label{structec__master_acbd6e49f052bce75f69d12ef93390e5b}} 
\index{ec\+\_\+master@{ec\+\_\+master}!cdev@{cdev}}
\index{cdev@{cdev}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{cdev}
{\footnotesize\ttfamily \textbf{ ec\+\_\+cdev\+\_\+t} ec\+\_\+master\+::cdev}



Master character device. 



Definition at line 198 of file master.\+h.

\mbox{\label{structec__master_ac5b8f1b9b9bc4beb08c6be854490841e}} 
\index{ec\+\_\+master@{ec\+\_\+master}!class\+\_\+device@{class\+\_\+device}}
\index{class\+\_\+device@{class\+\_\+device}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{class\+\_\+device}
{\footnotesize\ttfamily struct device$\ast$ ec\+\_\+master\+::class\+\_\+device}



Master class device. 



Definition at line 200 of file master.\+h.

\mbox{\label{structec__master_a322cd94f85808c07a046501df8308cc6}} 
\index{ec\+\_\+master@{ec\+\_\+master}!master\+\_\+sem@{master\+\_\+sem}}
\index{master\+\_\+sem@{master\+\_\+sem}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{master\+\_\+sem}
{\footnotesize\ttfamily struct semaphore ec\+\_\+master\+::master\+\_\+sem}



Master semaphore. 



Definition at line 209 of file master.\+h.

\mbox{\label{structec__master_af339cc3b68bceb8ce25b02f4d8b5891b}} 
\index{ec\+\_\+master@{ec\+\_\+master}!devices@{devices}}
\index{devices@{devices}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{devices}
{\footnotesize\ttfamily \textbf{ ec\+\_\+device\+\_\+t} ec\+\_\+master\+::devices[E\+C\+\_\+\+M\+A\+X\+\_\+\+N\+U\+M\+\_\+\+D\+E\+V\+I\+C\+ES]}



Ether\+C\+AT devices. 



Definition at line 211 of file master.\+h.

\mbox{\label{structec__master_ae06cfb9422989fbdcce9e17242aeeaa4}} 
\index{ec\+\_\+master@{ec\+\_\+master}!macs@{macs}}
\index{macs@{macs}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{macs}
{\footnotesize\ttfamily const uint8\+\_\+t$\ast$ ec\+\_\+master\+::macs[E\+C\+\_\+\+M\+A\+X\+\_\+\+N\+U\+M\+\_\+\+D\+E\+V\+I\+C\+ES]}



Device M\+AC addresses. 



Definition at line 212 of file master.\+h.

\mbox{\label{structec__master_acbd28a1ea76d9b758e53a987b18a59c7}} 
\index{ec\+\_\+master@{ec\+\_\+master}!device\+\_\+sem@{device\+\_\+sem}}
\index{device\+\_\+sem@{device\+\_\+sem}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{device\+\_\+sem}
{\footnotesize\ttfamily struct semaphore ec\+\_\+master\+::device\+\_\+sem}



Device semaphore. 



Definition at line 218 of file master.\+h.

\mbox{\label{structec__master_a8109992ca98fdfc4d97610ec699fec31}} 
\index{ec\+\_\+master@{ec\+\_\+master}!device\+\_\+stats@{device\+\_\+stats}}
\index{device\+\_\+stats@{device\+\_\+stats}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{device\+\_\+stats}
{\footnotesize\ttfamily \textbf{ ec\+\_\+device\+\_\+stats\+\_\+t} ec\+\_\+master\+::device\+\_\+stats}



Device statistics. 



Definition at line 219 of file master.\+h.

\mbox{\label{structec__master_a49062aab725bb4953a8fb6ad0fcabd85}} 
\index{ec\+\_\+master@{ec\+\_\+master}!fsm@{fsm}}
\index{fsm@{fsm}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{fsm}
{\footnotesize\ttfamily \textbf{ ec\+\_\+fsm\+\_\+master\+\_\+t} ec\+\_\+master\+::fsm}



Master state machine. 



Definition at line 221 of file master.\+h.

\mbox{\label{structec__master_a2f17ac41646829e59c60426847a14425}} 
\index{ec\+\_\+master@{ec\+\_\+master}!fsm\+\_\+datagram@{fsm\+\_\+datagram}}
\index{fsm\+\_\+datagram@{fsm\+\_\+datagram}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{fsm\+\_\+datagram}
{\footnotesize\ttfamily \textbf{ ec\+\_\+datagram\+\_\+t} ec\+\_\+master\+::fsm\+\_\+datagram}



Datagram used for state machines. 



Definition at line 222 of file master.\+h.

\mbox{\label{structec__master_aeeac95bdfc711903f48710b31e8b78a2}} 
\index{ec\+\_\+master@{ec\+\_\+master}!phase@{phase}}
\index{phase@{phase}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{phase}
{\footnotesize\ttfamily \textbf{ ec\+\_\+master\+\_\+phase\+\_\+t} ec\+\_\+master\+::phase}



Master phase. 



Definition at line 223 of file master.\+h.

\mbox{\label{structec__master_abca51c185472a028ee9a541f6c375d1b}} 
\index{ec\+\_\+master@{ec\+\_\+master}!active@{active}}
\index{active@{active}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{active}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::active}



Master has been activated. 



Definition at line 224 of file master.\+h.

\mbox{\label{structec__master_ad505951b836d6c8a92549be0a8506aa0}} 
\index{ec\+\_\+master@{ec\+\_\+master}!config\+\_\+changed@{config\+\_\+changed}}
\index{config\+\_\+changed@{config\+\_\+changed}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{config\+\_\+changed}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::config\+\_\+changed}



The configuration changed. 



Definition at line 225 of file master.\+h.

\mbox{\label{structec__master_a196088421f83927659e8c492f0432374}} 
\index{ec\+\_\+master@{ec\+\_\+master}!injection\+\_\+seq\+\_\+fsm@{injection\+\_\+seq\+\_\+fsm}}
\index{injection\+\_\+seq\+\_\+fsm@{injection\+\_\+seq\+\_\+fsm}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{injection\+\_\+seq\+\_\+fsm}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::injection\+\_\+seq\+\_\+fsm}



Datagram injection sequence number for the F\+SM side. 



Definition at line 226 of file master.\+h.

\mbox{\label{structec__master_aa2badb7a9897d61488b4f08e58eb510c}} 
\index{ec\+\_\+master@{ec\+\_\+master}!injection\+\_\+seq\+\_\+rt@{injection\+\_\+seq\+\_\+rt}}
\index{injection\+\_\+seq\+\_\+rt@{injection\+\_\+seq\+\_\+rt}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{injection\+\_\+seq\+\_\+rt}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::injection\+\_\+seq\+\_\+rt}



Datagram injection sequence number for the realtime side. 



Definition at line 228 of file master.\+h.

\mbox{\label{structec__master_abc8bc52f09996b03c605c0c1d2e6327a}} 
\index{ec\+\_\+master@{ec\+\_\+master}!slaves@{slaves}}
\index{slaves@{slaves}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{slaves}
{\footnotesize\ttfamily \textbf{ ec\+\_\+slave\+\_\+t}$\ast$ ec\+\_\+master\+::slaves}



Array of slaves on the bus. 



Definition at line 231 of file master.\+h.

\mbox{\label{structec__master_a664524e036971936aa812b73c51dc88d}} 
\index{ec\+\_\+master@{ec\+\_\+master}!slave\+\_\+count@{slave\+\_\+count}}
\index{slave\+\_\+count@{slave\+\_\+count}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{slave\+\_\+count}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::slave\+\_\+count}



Number of slaves on the bus. 



Definition at line 232 of file master.\+h.

\mbox{\label{structec__master_ada6ef60acc0c19ab234472282fa3ef06}} 
\index{ec\+\_\+master@{ec\+\_\+master}!configs@{configs}}
\index{configs@{configs}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{configs}
{\footnotesize\ttfamily struct list\+\_\+head ec\+\_\+master\+::configs}



List of slave configurations. 



Definition at line 235 of file master.\+h.

\mbox{\label{structec__master_a8d9bf2d9c43ac4724f13cb6a2fd34ab0}} 
\index{ec\+\_\+master@{ec\+\_\+master}!domains@{domains}}
\index{domains@{domains}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{domains}
{\footnotesize\ttfamily struct list\+\_\+head ec\+\_\+master\+::domains}



List of domains. 



Definition at line 236 of file master.\+h.

\mbox{\label{structec__master_a499bcb3d75277ce4415f6df3de21b7d0}} 
\index{ec\+\_\+master@{ec\+\_\+master}!app\+\_\+time@{app\+\_\+time}}
\index{app\+\_\+time@{app\+\_\+time}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{app\+\_\+time}
{\footnotesize\ttfamily u64 ec\+\_\+master\+::app\+\_\+time}



Time of the last ecrt\+\_\+master\+\_\+sync() call. 



Definition at line 238 of file master.\+h.

\mbox{\label{structec__master_a76d60bf657e362358ef24cb56e12771a}} 
\index{ec\+\_\+master@{ec\+\_\+master}!app\+\_\+start\+\_\+time@{app\+\_\+start\+\_\+time}}
\index{app\+\_\+start\+\_\+time@{app\+\_\+start\+\_\+time}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{app\+\_\+start\+\_\+time}
{\footnotesize\ttfamily u64 ec\+\_\+master\+::app\+\_\+start\+\_\+time}



Application start time. 



Definition at line 239 of file master.\+h.

\mbox{\label{structec__master_aafac97e86bc13e578d3ff0030c8ce7eb}} 
\index{ec\+\_\+master@{ec\+\_\+master}!has\+\_\+app\+\_\+time@{has\+\_\+app\+\_\+time}}
\index{has\+\_\+app\+\_\+time@{has\+\_\+app\+\_\+time}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{has\+\_\+app\+\_\+time}
{\footnotesize\ttfamily u8 ec\+\_\+master\+::has\+\_\+app\+\_\+time}



Application time is valid. 



Definition at line 240 of file master.\+h.

\mbox{\label{structec__master_a8cb95984916798bb54e829452d069f50}} 
\index{ec\+\_\+master@{ec\+\_\+master}!ref\+\_\+sync\+\_\+datagram@{ref\+\_\+sync\+\_\+datagram}}
\index{ref\+\_\+sync\+\_\+datagram@{ref\+\_\+sync\+\_\+datagram}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{ref\+\_\+sync\+\_\+datagram}
{\footnotesize\ttfamily \textbf{ ec\+\_\+datagram\+\_\+t} ec\+\_\+master\+::ref\+\_\+sync\+\_\+datagram}



Datagram used for synchronizing the reference clock to the master clock. 



Definition at line 241 of file master.\+h.

\mbox{\label{structec__master_a34e475677b9513fba43fb615e1928fdc}} 
\index{ec\+\_\+master@{ec\+\_\+master}!sync\+\_\+datagram@{sync\+\_\+datagram}}
\index{sync\+\_\+datagram@{sync\+\_\+datagram}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{sync\+\_\+datagram}
{\footnotesize\ttfamily \textbf{ ec\+\_\+datagram\+\_\+t} ec\+\_\+master\+::sync\+\_\+datagram}



Datagram used for DC drift compensation. 



Definition at line 243 of file master.\+h.

\mbox{\label{structec__master_ab80e6b1c25a8818e7959aedcbe99e8aa}} 
\index{ec\+\_\+master@{ec\+\_\+master}!sync\+\_\+mon\+\_\+datagram@{sync\+\_\+mon\+\_\+datagram}}
\index{sync\+\_\+mon\+\_\+datagram@{sync\+\_\+mon\+\_\+datagram}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{sync\+\_\+mon\+\_\+datagram}
{\footnotesize\ttfamily \textbf{ ec\+\_\+datagram\+\_\+t} ec\+\_\+master\+::sync\+\_\+mon\+\_\+datagram}



Datagram used for DC synchronisation monitoring. 



Definition at line 245 of file master.\+h.

\mbox{\label{structec__master_ac4017bf50536c4aef75cfbbc97cf5c1f}} 
\index{ec\+\_\+master@{ec\+\_\+master}!dc\+\_\+ref\+\_\+config@{dc\+\_\+ref\+\_\+config}}
\index{dc\+\_\+ref\+\_\+config@{dc\+\_\+ref\+\_\+config}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{dc\+\_\+ref\+\_\+config}
{\footnotesize\ttfamily \textbf{ ec\+\_\+slave\+\_\+config\+\_\+t}$\ast$ ec\+\_\+master\+::dc\+\_\+ref\+\_\+config}



Application-\/selected DC reference clock slave config. 



Definition at line 247 of file master.\+h.

\mbox{\label{structec__master_a8bce8836632ebb3a467480e4ea80b897}} 
\index{ec\+\_\+master@{ec\+\_\+master}!dc\+\_\+ref\+\_\+clock@{dc\+\_\+ref\+\_\+clock}}
\index{dc\+\_\+ref\+\_\+clock@{dc\+\_\+ref\+\_\+clock}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{dc\+\_\+ref\+\_\+clock}
{\footnotesize\ttfamily \textbf{ ec\+\_\+slave\+\_\+t}$\ast$ ec\+\_\+master\+::dc\+\_\+ref\+\_\+clock}



DC reference clock slave. 



Definition at line 249 of file master.\+h.

\mbox{\label{structec__master_a51de6aed4f6ef7b4d876083d778e7267}} 
\index{ec\+\_\+master@{ec\+\_\+master}!scan\+\_\+busy@{scan\+\_\+busy}}
\index{scan\+\_\+busy@{scan\+\_\+busy}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{scan\+\_\+busy}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::scan\+\_\+busy}



Current scan state. 



Definition at line 251 of file master.\+h.

\mbox{\label{structec__master_ad09f588b08a5271c5c6a5e2b303f2f20}} 
\index{ec\+\_\+master@{ec\+\_\+master}!allow\+\_\+scan@{allow\+\_\+scan}}
\index{allow\+\_\+scan@{allow\+\_\+scan}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{allow\+\_\+scan}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::allow\+\_\+scan}



{\itshape True}, if slave scanning is allowed. 



Definition at line 252 of file master.\+h.

\mbox{\label{structec__master_ab5b094c742e650a1a691e9e4d5499185}} 
\index{ec\+\_\+master@{ec\+\_\+master}!scan\+\_\+sem@{scan\+\_\+sem}}
\index{scan\+\_\+sem@{scan\+\_\+sem}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{scan\+\_\+sem}
{\footnotesize\ttfamily struct semaphore ec\+\_\+master\+::scan\+\_\+sem}



Semaphore protecting the {\itshape scan\+\_\+busy} variable and the {\itshape allow\+\_\+scan} flag. 



Definition at line 253 of file master.\+h.

\mbox{\label{structec__master_a4a38824373201b174f0ffa3141eca8a1}} 
\index{ec\+\_\+master@{ec\+\_\+master}!scan\+\_\+queue@{scan\+\_\+queue}}
\index{scan\+\_\+queue@{scan\+\_\+queue}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{scan\+\_\+queue}
{\footnotesize\ttfamily wait\+\_\+queue\+\_\+head\+\_\+t ec\+\_\+master\+::scan\+\_\+queue}



Queue for processes that wait for slave scanning. 



Definition at line 255 of file master.\+h.

\mbox{\label{structec__master_a89d9f24a4ffd7e41597449038bb39edc}} 
\index{ec\+\_\+master@{ec\+\_\+master}!config\+\_\+busy@{config\+\_\+busy}}
\index{config\+\_\+busy@{config\+\_\+busy}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{config\+\_\+busy}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::config\+\_\+busy}



State of slave configuration. 



Definition at line 258 of file master.\+h.

\mbox{\label{structec__master_a910d06d8a5b7dbe785bdd361181151ae}} 
\index{ec\+\_\+master@{ec\+\_\+master}!config\+\_\+sem@{config\+\_\+sem}}
\index{config\+\_\+sem@{config\+\_\+sem}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{config\+\_\+sem}
{\footnotesize\ttfamily struct semaphore ec\+\_\+master\+::config\+\_\+sem}



Semaphore protecting the {\itshape config\+\_\+busy} variable and the allow\+\_\+config flag. 



Definition at line 259 of file master.\+h.

\mbox{\label{structec__master_ab23c49dc46246de0e9d0b6247d4773fc}} 
\index{ec\+\_\+master@{ec\+\_\+master}!config\+\_\+queue@{config\+\_\+queue}}
\index{config\+\_\+queue@{config\+\_\+queue}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{config\+\_\+queue}
{\footnotesize\ttfamily wait\+\_\+queue\+\_\+head\+\_\+t ec\+\_\+master\+::config\+\_\+queue}



Queue for processes that wait for slave configuration. 



Definition at line 261 of file master.\+h.

\mbox{\label{structec__master_a00814132ac132469cbf6af632cc065c5}} 
\index{ec\+\_\+master@{ec\+\_\+master}!datagram\+\_\+queue@{datagram\+\_\+queue}}
\index{datagram\+\_\+queue@{datagram\+\_\+queue}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{datagram\+\_\+queue}
{\footnotesize\ttfamily struct list\+\_\+head ec\+\_\+master\+::datagram\+\_\+queue}



Datagram queue. 



Definition at line 264 of file master.\+h.

\mbox{\label{structec__master_a78f6e9a626268ed4747495077e9e704d}} 
\index{ec\+\_\+master@{ec\+\_\+master}!datagram\+\_\+index@{datagram\+\_\+index}}
\index{datagram\+\_\+index@{datagram\+\_\+index}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{datagram\+\_\+index}
{\footnotesize\ttfamily uint8\+\_\+t ec\+\_\+master\+::datagram\+\_\+index}



Current datagram index. 



Definition at line 265 of file master.\+h.

\mbox{\label{structec__master_a32a5c6ffb12850305eca759c70089ed7}} 
\index{ec\+\_\+master@{ec\+\_\+master}!ext\+\_\+datagram\+\_\+queue@{ext\+\_\+datagram\+\_\+queue}}
\index{ext\+\_\+datagram\+\_\+queue@{ext\+\_\+datagram\+\_\+queue}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{ext\+\_\+datagram\+\_\+queue}
{\footnotesize\ttfamily struct list\+\_\+head ec\+\_\+master\+::ext\+\_\+datagram\+\_\+queue}



Queue for non-\/application datagrams. 



Definition at line 267 of file master.\+h.

\mbox{\label{structec__master_af8b2cc465cf630bb51916a4637545d95}} 
\index{ec\+\_\+master@{ec\+\_\+master}!ext\+\_\+queue\+\_\+sem@{ext\+\_\+queue\+\_\+sem}}
\index{ext\+\_\+queue\+\_\+sem@{ext\+\_\+queue\+\_\+sem}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{ext\+\_\+queue\+\_\+sem}
{\footnotesize\ttfamily struct semaphore ec\+\_\+master\+::ext\+\_\+queue\+\_\+sem}



Semaphore protecting the {\itshape ext\+\_\+datagram\+\_\+queue}. 



Definition at line 269 of file master.\+h.

\mbox{\label{structec__master_ae8207eec28c8add322f0766a1941c678}} 
\index{ec\+\_\+master@{ec\+\_\+master}!ext\+\_\+datagram\+\_\+ring@{ext\+\_\+datagram\+\_\+ring}}
\index{ext\+\_\+datagram\+\_\+ring@{ext\+\_\+datagram\+\_\+ring}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{ext\+\_\+datagram\+\_\+ring}
{\footnotesize\ttfamily \textbf{ ec\+\_\+datagram\+\_\+t} ec\+\_\+master\+::ext\+\_\+datagram\+\_\+ring[\textbf{ E\+C\+\_\+\+E\+X\+T\+\_\+\+R\+I\+N\+G\+\_\+\+S\+I\+ZE}]}



External datagram ring. 



Definition at line 272 of file master.\+h.

\mbox{\label{structec__master_abde2d964e984e4874e200a025deb2d20}} 
\index{ec\+\_\+master@{ec\+\_\+master}!ext\+\_\+ring\+\_\+idx\+\_\+rt@{ext\+\_\+ring\+\_\+idx\+\_\+rt}}
\index{ext\+\_\+ring\+\_\+idx\+\_\+rt@{ext\+\_\+ring\+\_\+idx\+\_\+rt}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{ext\+\_\+ring\+\_\+idx\+\_\+rt}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::ext\+\_\+ring\+\_\+idx\+\_\+rt}



Index in external datagram ring for RT side. 



Definition at line 274 of file master.\+h.

\mbox{\label{structec__master_a7c216ddb4024fb15599e14d337b38cab}} 
\index{ec\+\_\+master@{ec\+\_\+master}!ext\+\_\+ring\+\_\+idx\+\_\+fsm@{ext\+\_\+ring\+\_\+idx\+\_\+fsm}}
\index{ext\+\_\+ring\+\_\+idx\+\_\+fsm@{ext\+\_\+ring\+\_\+idx\+\_\+fsm}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{ext\+\_\+ring\+\_\+idx\+\_\+fsm}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::ext\+\_\+ring\+\_\+idx\+\_\+fsm}



Index in external datagram ring for F\+SM side. 



Definition at line 276 of file master.\+h.

\mbox{\label{structec__master_a5f4ea791c6e6c52f636b3888e70c9da3}} 
\index{ec\+\_\+master@{ec\+\_\+master}!send\+\_\+interval@{send\+\_\+interval}}
\index{send\+\_\+interval@{send\+\_\+interval}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{send\+\_\+interval}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::send\+\_\+interval}



Interval between two calls to \doxyref{ecrt\+\_\+master\+\_\+send()}{p.}{group__ApplicationInterface_ga453f787866ee66afb98130cf4723762d}. 



Definition at line 278 of file master.\+h.

\mbox{\label{structec__master_a9e65179b1519a5c1e7ff229e428501d0}} 
\index{ec\+\_\+master@{ec\+\_\+master}!fsm\+\_\+slave@{fsm\+\_\+slave}}
\index{fsm\+\_\+slave@{fsm\+\_\+slave}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{fsm\+\_\+slave}
{\footnotesize\ttfamily \textbf{ ec\+\_\+slave\+\_\+t}$\ast$ ec\+\_\+master\+::fsm\+\_\+slave}



Slave that is queried next for F\+SM exec. 



Definition at line 282 of file master.\+h.

\mbox{\label{structec__master_a44b44a92fdb968e9e7cff3a210801393}} 
\index{ec\+\_\+master@{ec\+\_\+master}!fsm\+\_\+exec\+\_\+list@{fsm\+\_\+exec\+\_\+list}}
\index{fsm\+\_\+exec\+\_\+list@{fsm\+\_\+exec\+\_\+list}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{fsm\+\_\+exec\+\_\+list}
{\footnotesize\ttfamily struct list\+\_\+head ec\+\_\+master\+::fsm\+\_\+exec\+\_\+list}



Slave F\+SM execution list. 



Definition at line 283 of file master.\+h.

\mbox{\label{structec__master_a917c398a16d659c77249f4c77fde6dad}} 
\index{ec\+\_\+master@{ec\+\_\+master}!fsm\+\_\+exec\+\_\+count@{fsm\+\_\+exec\+\_\+count}}
\index{fsm\+\_\+exec\+\_\+count@{fsm\+\_\+exec\+\_\+count}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{fsm\+\_\+exec\+\_\+count}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::fsm\+\_\+exec\+\_\+count}



Number of entries in execution list. 



Definition at line 284 of file master.\+h.

\mbox{\label{structec__master_abdecf290f3f7f2af1b2a7bf0d9c7b08d}} 
\index{ec\+\_\+master@{ec\+\_\+master}!debug\+\_\+level@{debug\+\_\+level}}
\index{debug\+\_\+level@{debug\+\_\+level}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{debug\+\_\+level}
{\footnotesize\ttfamily unsigned int ec\+\_\+master\+::debug\+\_\+level}



Master debug level. 



Definition at line 286 of file master.\+h.

\mbox{\label{structec__master_ac10793455069c82bd9c459a596f9a38f}} 
\index{ec\+\_\+master@{ec\+\_\+master}!stats@{stats}}
\index{stats@{stats}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{stats}
{\footnotesize\ttfamily \textbf{ ec\+\_\+stats\+\_\+t} ec\+\_\+master\+::stats}



Cyclic statistics. 



Definition at line 287 of file master.\+h.

\mbox{\label{structec__master_a20064971533f5ff3e72933c7c19bad18}} 
\index{ec\+\_\+master@{ec\+\_\+master}!thread@{thread}}
\index{thread@{thread}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{thread}
{\footnotesize\ttfamily struct task\+\_\+struct$\ast$ ec\+\_\+master\+::thread}



Master thread. 



Definition at line 289 of file master.\+h.

\mbox{\label{structec__master_a06e3b89f4c10b690f95a9bdac24eb94a}} 
\index{ec\+\_\+master@{ec\+\_\+master}!eoe\+\_\+thread@{eoe\+\_\+thread}}
\index{eoe\+\_\+thread@{eoe\+\_\+thread}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{eoe\+\_\+thread}
{\footnotesize\ttfamily struct task\+\_\+struct$\ast$ ec\+\_\+master\+::eoe\+\_\+thread}



EoE thread. 



Definition at line 292 of file master.\+h.

\mbox{\label{structec__master_a2758ca69c680c4f5a413820f4ed4cdf7}} 
\index{ec\+\_\+master@{ec\+\_\+master}!eoe\+\_\+handlers@{eoe\+\_\+handlers}}
\index{eoe\+\_\+handlers@{eoe\+\_\+handlers}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{eoe\+\_\+handlers}
{\footnotesize\ttfamily struct list\+\_\+head ec\+\_\+master\+::eoe\+\_\+handlers}



Ethernet over Ether\+C\+AT handlers. 



Definition at line 293 of file master.\+h.

\mbox{\label{structec__master_a4fb65657efce9d74dae090cd3dd5fba5}} 
\index{ec\+\_\+master@{ec\+\_\+master}!io\+\_\+sem@{io\+\_\+sem}}
\index{io\+\_\+sem@{io\+\_\+sem}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{io\+\_\+sem}
{\footnotesize\ttfamily struct semaphore ec\+\_\+master\+::io\+\_\+sem}



Semaphore used in {\itshape I\+D\+LE} phase. 



Definition at line 296 of file master.\+h.

\mbox{\label{structec__master_a81a6d63239d0b89907771f1a2dd27e5d}} 
\index{ec\+\_\+master@{ec\+\_\+master}!send\+\_\+cb@{send\+\_\+cb}}
\index{send\+\_\+cb@{send\+\_\+cb}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{send\+\_\+cb}
{\footnotesize\ttfamily void($\ast$ ec\+\_\+master\+::send\+\_\+cb) (void $\ast$)}



Current send datagrams callback. 



Definition at line 298 of file master.\+h.

\mbox{\label{structec__master_a77c9e440c6cfdc87a74ec9a15d6e9e61}} 
\index{ec\+\_\+master@{ec\+\_\+master}!receive\+\_\+cb@{receive\+\_\+cb}}
\index{receive\+\_\+cb@{receive\+\_\+cb}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{receive\+\_\+cb}
{\footnotesize\ttfamily void($\ast$ ec\+\_\+master\+::receive\+\_\+cb) (void $\ast$)}



Current receive datagrams callback. 



Definition at line 299 of file master.\+h.

\mbox{\label{structec__master_af8863ff09c783ae1322beb9609b23ec0}} 
\index{ec\+\_\+master@{ec\+\_\+master}!cb\+\_\+data@{cb\+\_\+data}}
\index{cb\+\_\+data@{cb\+\_\+data}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{cb\+\_\+data}
{\footnotesize\ttfamily void$\ast$ ec\+\_\+master\+::cb\+\_\+data}



Current callback data. 



Definition at line 300 of file master.\+h.

\mbox{\label{structec__master_a92e6bc0028daf31111f66b11a6bfd959}} 
\index{ec\+\_\+master@{ec\+\_\+master}!app\+\_\+send\+\_\+cb@{app\+\_\+send\+\_\+cb}}
\index{app\+\_\+send\+\_\+cb@{app\+\_\+send\+\_\+cb}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{app\+\_\+send\+\_\+cb}
{\footnotesize\ttfamily void($\ast$ ec\+\_\+master\+::app\+\_\+send\+\_\+cb) (void $\ast$)}



Application\textquotesingle{}s send datagrams callback. 



Definition at line 301 of file master.\+h.

\mbox{\label{structec__master_a769c6018142318d7a4e94412bb75583a}} 
\index{ec\+\_\+master@{ec\+\_\+master}!app\+\_\+receive\+\_\+cb@{app\+\_\+receive\+\_\+cb}}
\index{app\+\_\+receive\+\_\+cb@{app\+\_\+receive\+\_\+cb}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{app\+\_\+receive\+\_\+cb}
{\footnotesize\ttfamily void($\ast$ ec\+\_\+master\+::app\+\_\+receive\+\_\+cb) (void $\ast$)}



Application\textquotesingle{}s receive datagrams callback. 



Definition at line 303 of file master.\+h.

\mbox{\label{structec__master_a6ffa04311b054c877c9c956b00ae19d3}} 
\index{ec\+\_\+master@{ec\+\_\+master}!app\+\_\+cb\+\_\+data@{app\+\_\+cb\+\_\+data}}
\index{app\+\_\+cb\+\_\+data@{app\+\_\+cb\+\_\+data}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{app\+\_\+cb\+\_\+data}
{\footnotesize\ttfamily void$\ast$ ec\+\_\+master\+::app\+\_\+cb\+\_\+data}



Application callback data. 



Definition at line 305 of file master.\+h.

\mbox{\label{structec__master_a45e433c08e51a354f728d1b9a3d0fda5}} 
\index{ec\+\_\+master@{ec\+\_\+master}!sii\+\_\+requests@{sii\+\_\+requests}}
\index{sii\+\_\+requests@{sii\+\_\+requests}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{sii\+\_\+requests}
{\footnotesize\ttfamily struct list\+\_\+head ec\+\_\+master\+::sii\+\_\+requests}



S\+II write requests. 



Definition at line 307 of file master.\+h.

\mbox{\label{structec__master_a40be6dcab1a714b076a435f58710ed15}} 
\index{ec\+\_\+master@{ec\+\_\+master}!request\+\_\+queue@{request\+\_\+queue}}
\index{request\+\_\+queue@{request\+\_\+queue}!ec\+\_\+master@{ec\+\_\+master}}
\subsubsection{request\+\_\+queue}
{\footnotesize\ttfamily wait\+\_\+queue\+\_\+head\+\_\+t ec\+\_\+master\+::request\+\_\+queue}



Wait queue for external requests from user space. 



Definition at line 309 of file master.\+h.

